package main

import (
	"fmt"
	"math/rand"
)

//rand.Intn () 函数是个伪随机函数，不管运行多少次都只会返回同样的随机数，
// 因为它默认的资源就是单一值，所以必须调用 rand.Seed (), 并且传入一个变化的值作为参数，如 time.Now().UnixNano() , 就是可以生成时刻变化的值.
func main() {
	ia := []interface{}{byte(6), 'a', uint(10), int32(-4)}
	r1 := rand.Intn(4)
	fmt.Println("r1: ",r1)
	c1 := r1%2
	fmt.Println(c1)
	fmt.Println(ia[c1])
	switch v := ia[c1]; interface{}(v).(type) {
	case int32:
		fmt.Printf("Case A.")
	case byte :
		fmt.Printf("Case B.")
	default:
		fmt.Println("Unknown!")
	}
}